/*异步处理 */

function ajax(fn){
    setTimeout(()=>{
        console.log('你好')
        fn()
    },1000)
}

//callback 回掉地狱
// ajax(()=>{
//     console.log('执行结束')
//     ajax(()=>{
//         ajax(()=>{
//             ajax(()=>{
        
//             })
//         })
//     })
// })

// 1. callback
function delay(word){
    return new Promise((reslove,reject)=>{
        setTimeout(()=>{
            reslove(word)
        },2000)
    })
}

// async+wait 一起使用

async function start(){
    const word1 = await delay('孙悟空')
    console.log(word1)
    const word2 = await delay('猪八戒')
    console.log(word2)
    const word3 = await delay('沙悟净')
    console.log(word3)
}

start()

//上面就是 非常优雅的异步方案


// delay('孙悟空')
//    .then((word)=>{
//        console.log(word)
//        return delay('猪八戒')
//    })

//    .then((word)=>{
//     console.log(word)
//     return delay('沙悟净')
//    })

//     .then((word)=>{
//         console.log(word)
//     })
    //.catch